package com.fx.zmlzml.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 电脑配件价格权重实体类
 * 对应表名：ahp_pc_component_price_weight
 */
@Data
@TableName("ahp_pc_component_price_weight")
public class AhpPcComponentPriceWeight {

    @TableId(type = IdType.AUTO)
    private Integer id; // 主键ID

    /**
     * 场景类型
     */
    private String purpose;

    /**
     * 等级
     */
    private String level;

    /**
     * 主板
     */
    @NotNull(message = "主板权重不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "主板权重不能为负数")
    @DecimalMax(value = "100.0", message = "主板权重不能超过100")
    private BigDecimal pcMotherboard;
    private String pcMotherboardModel;

    /**
     * CPU
     */
    @NotNull(message = "CPU权重不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "CPU权重不能为负数")
    @DecimalMax(value = "100.0", message = "CPU权重不能超过100")
    private BigDecimal pcCpu;
    private String pcCpuModel;

    /**
     * 散热
     */
    @NotNull(message = "散热权重不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "散热权重不能为负数")
    @DecimalMax(value = "100.0", message = "散热权重不能超过100")
    private BigDecimal pcCooler;
    private String pcCoolerModel;

    /**
     * 显卡
     */
    @NotNull(message = "显卡权重不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "显卡权重不能为负数")
    @DecimalMax(value = "100.0", message = "显卡权重不能超过100")
    private BigDecimal pcGpu;
    private String pcGpuModel;

    /**
     * 内存
     */
    @NotNull(message = "内存权重不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "内存权重不能为负数")
    @DecimalMax(value = "100.0", message = "内存权重不能超过100")
    private BigDecimal pcMemory;
    private String pcMemoryModel;

    /**
     * 硬盘
     */
    @NotNull(message = "硬盘权重不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "硬盘权重不能为负数")
    @DecimalMax(value = "100.0", message = "硬盘权重不能超过100")
    private BigDecimal pcHardDisk;
    private String pcHardDiskModel;

    /**
     * 电源
     */
    @NotNull(message = "电源权重不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "电源权重不能为负数")
    @DecimalMax(value = "100.0", message = "电源权重不能超过100")
    private BigDecimal pcPowerSupply;
    private String pcPowerSupplyModel;

    /**
     * 机箱
     */
    @NotNull(message = "机箱权重不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "机箱权重不能为负数")
    @DecimalMax(value = "100.0", message = "机箱权重不能超过100")
    private BigDecimal pcCase;
    private String pcCaseModel;

    private Boolean isDeleted; // 是否删除 0-否 1-是

    private String creator; // 创建人

    private Date createdTime; // 创建时间

    private String updater; // 更新人

    private Date updatedTime; // 更新时间


}